SCW - NASA Space Apps Challenge 2018 - Timelapse
Discover starts and galaxy from the image provided via custom made telescope. Area on a image is selected and after that, app returns information about selected area.
| // model.go | |
| package main | |
| import ( | |
| "database/sql" | |
| "fmt" | |
| ) | |
| typeuserstruct { | |
| IDint`json:"id"` | |
| UserNamestring`json:"username"` | |
| Emailstring`json:"email"` | |
| Passwordstring`json:"password"` | |
| Pointsstring`json:"points"` | |
| } | |
| func (u*user) getUser(db*sql.DB) error { | |
| statement:=fmt.Sprintf("SELECT username, email, points FROM users WHERE id=%d", u.ID) | |
| returndb.QueryRow(statement).Scan(&u.UserName, &u.Email, &u.Points) | |
| } | |
| func (u*user) updateUser(db*sql.DB) error { | |
| statement:=fmt.Sprintf("UPDATE users SET username='%s', email='%s', password='%s', points='%s'WHERE id=%d", u.UserName, u.Email, u.Password, u.Points, u.ID) | |
| _, err:=db.Exec(statement) | |
| returnerr | |
| } | |
| func (u*user) deleteUser(db*sql.DB) error { | |
| statement:=fmt.Sprintf("DELETE FROM users WHERE id=%d", u.ID) | |
| _, err:=db.Exec(statement) | |
| returnerr | |
| } | |
| func (u*user) checkEmail(db*sql.DB) error { | |
| statement:=fmt.Sprintf("SELECT id FROM users WHERE email='%s'", u.Email) | |
| returndb.QueryRow(statement).Scan(&u.ID) | |
| } | |
| func (u*user) createUser(db*sql.DB) error { | |
| statement:=fmt.Sprintf("INSERT INTO users(username, email, password, points) VALUES('%s', '%s', '%s', '%s')", u.UserName, u.Email, u.Password, u.Points) | |
| _, err:=db.Exec(statement) | |
| iferr!=nil { | |
| returnerr | |
| } | |
| err=db.QueryRow("SELECT LAST_INSERT_ID()").Scan(&u.ID) | |
| iferr!=nil { | |
| returnerr | |
| } | |
| returnnil | |
| } | |
| funcgetUsers(db*sql.DB, start, countint) ([]user, error) { | |
| statement:=fmt.Sprintf("SELECT id, username, email, points FROM users LIMIT %d OFFSET %d", count, start) | |
| rows, err:=db.Query(statement) | |
| iferr!=nil { | |
| returnnil, err | |
| } | |
| deferrows.Close() | |
| users:= []user{} | |
| forrows.Next() { | |
| varuuser | |
| iferr:=rows.Scan(&u.ID, &u.UserName, &u.Email, &u.Points); err!=nil { | |
| returnnil, err | |
| } | |
| users=append(users, u) | |
| } | |
| returnusers, nil | |
| } | |
| // user auth | |
| func (u*user) authUser(db*sql.DB) error { | |
| statement:=fmt.Sprintf("SELECT id, username, email FROM users WHERE email='%s' AND password='%s'", u.Email, u.Password) | |
| returndb.QueryRow(statement).Scan(&u.ID, &u.UserName, &u.Email) | |
| } |
Backend server written in GO Lang for user registration and points counting.







SpaceApps is a NASA incubator innovation program.