Skip to content

Commit 360d581

Browse files
Readme update
1 parent 9464f9a commit 360d581

File tree

1 file changed

+67
-66
lines changed

1 file changed

+67
-66
lines changed

README.md

Lines changed: 67 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -1,159 +1,160 @@
11
# Sparkly Server
22

3-
Backend API for **Sparkly**, a build‑in‑public social platform. This repository contains the C# / .NET backend that powers authentication, user accounts, project management and the core application features used by the Sparkly web client.
3+
Backend API for **Sparkly**, a platform for documenting progress, building projects consistently and creating a dynamic portfolio. This repository contains the C# / .NET backend that powers authentication, user accounts, project timelines and the core application logic used by the Sparkly web client.
44

5-
> Status: early development – API surface, architecture and testing pipeline are actively evolving.
5+
> Status: early development – the API, domain model and testing setup continue to evolve.
66
77
---
88

99
## Tech stack
1010

11-
* **.NET**: .NET 9 (ASP.NET Core Web API)
12-
* **Data access**: Entity Framework Core (codefirst migrations)
13-
* **Database**: PostgreSQL (local or via Docker)
14-
* **Containerization**: Docker + Docker Compose
15-
* **Tests**: xUnit integration tests using TestServer
16-
* **CI/CD**: GitHub Actions (build + tests + optional Docker build)
17-
* **Tooling**: `dotnet` CLI, EF Core CLI
11+
* **.NET 9** (ASP.NET Core Web API)
12+
* **Entity Framework Core** (code-first migrations)
13+
* **PostgreSQL** (local or Docker)
14+
* **Docker + Docker Compose** for containerization
15+
* **xUnit** integration tests with TestServer
16+
* **GitHub Actions** (build, tests, optional Docker build)
17+
* `dotnet` CLI and EF Core CLI
1818

1919
---
2020

2121
## Project structure
2222

2323
```text
2424
sparkly-server/
25-
├─ src/ # API, domain, infrastructure
25+
├─ src/ # API, domain and infrastructure
2626
├─ Migrations/ # EF Core migrations
2727
├─ sparkly-server.test/ # Integration tests
28-
├─ Program.cs # Entrypoint
29-
├─ compose.yaml # Docker Compose stack (API + DB)
28+
├─ Program.cs # Application entrypoint
29+
├─ compose.yaml # Docker Compose stack
3030
├─ Dockerfile # API image
31-
├─ .github/workflows/ # GitHub Actions CI
32-
├─ appsettings.json # Base config (non-secret)
31+
├─ .github/workflows/ # CI pipelines
32+
├─ appsettings.json # Base config
3333
└─ appsettings.Development.json # Local overrides
3434
```
3535

36-
The `src` directory contains controllers, domain models, services, repositories and configuration. Tests live in a separate project with isolated database state.
36+
`src` contains controllers, services, domain entities, validators and repository logic. Tests run in isolation with a clean database state.
3737

3838
---
3939

4040
## Getting started
4141

42-
### Prerequisites
42+
### Requirements
4343

4444
* .NET 9 SDK
4545
* Docker + Docker Compose
4646
* Git
4747

48-
### Clone
48+
### Clone the repo
4949

5050
```bash
5151
git clone https://github.com/SculptTechProject/sparkly-server.git
5252
cd sparkly-server
5353
```
5454

55-
### Environment configuration
55+
### Environment variables
5656

57-
The backend reads configuration from `appsettings.json` and environment variables. Do not commit secrets.
57+
Configuration comes from `appsettings.json` and environment variables. Secrets should never be committed.
5858

59-
Example variables:
59+
Example setup:
6060

6161
```bash
6262
export ASPNETCORE_ENVIRONMENT=Development
6363
export ConnectionStrings__DefaultConnection="Host=localhost;Port=5432;Database=sparkly;Username=sparkly;Password=changeme"
6464
export Jwt__Issuer="https://sparkly.local"
6565
export Jwt__Audience="sparkly-app"
66-
export Jwt__Secret="super-long-random-secret-key-change-me"
66+
export Jwt__Secret="super-long-secret-key-change-me"
6767
```
6868

69-
A `.env.example` or `appsettings.Development.example.json` is recommended to document required keys.
69+
Providing an example config file (`.env.example` or `appsettings.Development.example.json`) is recommended.
7070

71-
### Database migrations
71+
### Apply migrations
7272

7373
```bash
7474
dotnet restore
7575
dotnet ef database update
7676
```
7777

78-
Or let Docker apply migrations at startup, depending on configuration.
78+
Docker can also run migrations automatically depending on the setup.
7979

8080
### Run locally
8181

82-
**Dotnet CLI:**
82+
**Using dotnet:**
8383

8484
```bash
8585
dotnet restore
8686
dotnet run
8787
```
8888

89-
**Docker Compose:**
89+
**Using Docker Compose:**
9090

9191
```bash
9292
docker compose up --build
9393
```
9494

95-
This builds the API image and launches both the API and PostgreSQL.
95+
This launches the API and PostgreSQL.
9696

9797
---
9898

9999
## Tests
100100

101-
The project includes integration tests that run the API using an in-memory test server. Tests reset database state for every run.
101+
Integration tests run the API with an isolated in-memory server. Each test resets database state.
102102

103-
Run tests locally:
103+
Run locally:
104104

105105
```bash
106106
dotnet test
107107
```
108108

109-
Run tests using Docker Compose:
109+
Run through Docker Compose:
110110

111111
```bash
112112
docker compose run --rm api dotnet test
113113
```
114114

115115
---
116116

117-
## GitHub Actions (CI)
117+
## GitHub Actions CI
118118

119-
This repository contains a CI pipeline that runs on every push and pull request:
119+
The repository includes a pipeline triggered on push and pull requests. It performs:
120120

121121
* restore and build
122-
* run tests
123-
* optionally build Docker image
122+
* test execution
123+
* optional Docker image build
124124

125-
This ensures that the API and tests stay green across contributions.
125+
This ensures the API stays stable across changes.
126126

127127
---
128128

129129
## API overview
130130

131-
The backend currently covers:
131+
Current features:
132132

133-
* user registration and login
134-
* user profile and authentication
133+
* user authentication and login
134+
* user profiles
135135
* project creation and management
136136

137-
Planned additions:
137+
Planned development:
138138

139-
* feed system for build-in-public updates
140-
* real‑time notifications
141-
* billing and subscription logic
142-
* moderation and admin endpoints
139+
* project timelines and weekly logs
140+
* build-in-public feed
141+
* notifications
142+
* subscriptions and billing
143+
* admin and moderation tools
143144

144-
Documentation will be available through OpenAPI/Swagger.
145+
OpenAPI / Swagger documentation will be added.
145146

146147
---
147148

148-
## Docker commands
149+
## Docker usage
149150

150-
Build image manually:
151+
Build the image manually:
151152

152153
```bash
153154
docker build -t sparkly-server .
154155
```
155156

156-
Run image manually:
157+
Run the container:
157158

158159
```bash
159160
docker run \
@@ -167,47 +168,47 @@ docker run \
167168

168169
## Secrets
169170

170-
Secrets must always be supplied using environment variables or secret management tools. Never commit real credentials.
171+
Secrets must be provided via environment variables or a secret manager.
171172

172-
Likely future keys:
173+
Future keys may include:
173174

174-
* Stripe secrets
175-
* JWT settings
175+
* Stripe
176+
* JWT
176177
* OAuth providers (GitHub, Google)
177178

178179
---
179180

180181
## Development workflow
181182

182-
1. Create a small issue or task.
183-
2. Implement changes on a feature branch.
184-
3. Add or update tests.
185-
4. Run local build and tests.
186-
5. Push and open a PR.
183+
1. Open an issue or define a small task.
184+
2. Implement the change in a feature branch.
185+
3. Update or add tests.
186+
4. Run the build and tests locally.
187+
5. Open a pull request.
187188

188-
This keeps the project clean and easy to maintain.
189+
This keeps the repository clean and maintainable.
189190

190191
---
191192

192-
## Roadmap (short‑term)
193+
## Short-term roadmap
193194

194-
* Full authentication and refresh tokens
195-
* Public project pages
196-
* Build-in-public feed
197-
* Email notifications
198-
* Admin panel foundations
199-
* Observability (structured logs, metrics, probes)
195+
* refresh tokens
196+
* public project pages
197+
* project feed and logs
198+
* email notifications
199+
* admin foundations
200+
* observability (logs, metrics, probes)
200201

201202
---
202203

203204
## Contributing
204205

205-
The project is actively developed by the SculptTech / Sparkly team. External contributions will be welcomed once core systems stabilise.
206+
The codebase is currently maintained by the SculptTech / Sparkly team. External contributions will be accepted once the core platform stabilises.
206207

207208
---
208209

209210
## License
210211

211212
License: **TBD**
212213

213-
Until then, treat the repository as sourceavailable only.
214+
Until finalised, treat the code as source-available only.

0 commit comments

Comments
 (0)